package com.leyou.item.service;

import com.leyou.item.bo.SpuBo;
import com.leyou.item.pojo.Sku;
import com.leyou.item.pojo.SpuDetail;
import com.leyou.common.parameter.SpuQueryByPageParameter;
import com.leyou.common.pojo.PageResult;

import java.util.List;

public interface GoodsService {
    /**
     * 发送消息到mq，生产者
     * @param id
     * @param type
     */
    public void sendMessage(Long id, String type);


    /**
     * 分页查询商品
     * @param param
     * @return
     */
    public PageResult<SpuBo> querySpuboByPageAndSort(SpuQueryByPageParameter param);

    /**
     * 新增商品
     * @param spu
     */
    public void addGoods(SpuBo spu);

    /**
     * 商品上下架(单个、批量)
     * @param id
     */
    public void goodsSoldOutPut(Long id);

    /**
     * 商品删除(单个、批量)
     * @param id
     */
    public void deleteGoodsById(String id);

    /**
     * 根据id查询商品信息
     * @param id
     */
    public SpuBo queryGoodsBySpuId(Long id);

    /**
     * 商品修改
     * @param spuBo
     */
    public void updateGoods(SpuBo spuBo);


    /**
     * 根据SpuId查询所有的sku
     * @param id
     * @return
     */
    public List<Sku> querySkuBySpuId(Long id);

    /**
     * 根据id查询sku
     * @param id
     * @return
     */
    public Sku querySkuById(Long id);

    /**
     * 根据spu商品id查询详细信息
     * @param id
     * @return
     */
    public SpuDetail querySpuDetailBySpuId(Long id);

}
